#include <algorithm>
#include <iostream>
using namespace std;
typedef long long ll;
const int MAX = 100005;
int n, k, x, y, p;
int a[MAX], b[MAX];
int main() {
ios::sync_with_stdio(false);
cin >> n >> k;
for(int i = 0; i < n; i++)
cin >> a[i];
sort(a, a + n);
if(k == 1){
cout << n << endl;
return 0;
}
for(int i = 0; i < n; i++){
y = a[i];
b[i] = 1;
if(y % k != 0) continue;
x = y / k;
p = lower_bound(a, a + n, x) - a;
if(a[p] == x){
b[i] = b[p] + 1;
b[p] = 0;
}
}
int ans = 0;
for(int i = 0; i < n; i++){
ans += (b[i] + 1) / 2;
}
cout << ans << endl;
return 0;
}
831B - Keyboard Layouts | 814A - An abandoned sentiment from past |
268C - Beautiful Sets of Points | 1391C - Cyclic Permutations |
11A - Increasing Sequence | 1406A - Subset Mex |
1365F - Swaps Again | 50B - Choosing Symbol Pairs |
1719A - Chip Game | 454B - Little Pony and Sort by Shift |
1152A - Neko Finds Grapes | 1719B - Mathematical Circus |
1719C - Fighting Tournament | 1642A - Hard Way |
285C - Building Permutation | 1719E - Fibonacci Strings |
1696C - Fishingprince Plays With Array | 1085A - Right-Left Cipher |
1508B - Almost Sorted | 1690C - Restoring the Duration of Tasks |
1055A - Metro | 1036D - Vasya and Arrays |
1139C - Edgy Trees | 37A - Towers |
353A - Domino | 409H - A + B Strikes Back |
1262A - Math Problem | 158C - Cd and pwd commands |
194A - Exams | 1673B - A Perfectly Balanced String |